Server: Netscape-Commerce/1.12
Date: Tuesday, 26-Nov-96 00:06:42 GMT
Last-modified: Thursday, 15-Jun-95 00:35:44 GMT
Content-length: 4767
Content-type: text/html

<!doctype html public "-//W30//DTD W3 HTML 2.0//EN">

<HTML>


<TITLE>COMPUTATION STRUCTURES GROUP</TITLE>


<p><center>
<!WA0><A HREF="http://www.csg.lcs.mit.edu:8001/"><!WA1><IMG SRC="http://www.lcs.mit.edu/web_project/Brochure/csg/csgline.gif></a>
</center>
<p>
<center>
<table border>
<tr>
	<td><img src=arvind.gif></td>
	<td width=100 rowspan=2></td>
	<td><img src=dennis.gif></td>
</tr>
<tr>
<td> <A HREF="http://www.csg.lcs.mit.edu:8001/Users/arvind"><address><b>Arvind</b></a>,<br>Charles W. and Jennifer C. Johnson<br>
	Professor of Electrical Engineering <br>and Computer Science</address>
	</td><td> <address><b>Jack Dennis</b></a>,<br>Professor of Electrical Engineering <br>and Computer Science, <b>Emeritus</b></address></td>
</tr>
</table>
</center>
<body>
<p>
The Computation Structures group (CSG) researches
high-speed, general-purpose parallel computing. One of our
goals is to guide the architecture of parallel computers by
a language/programming model that is general enough to
support a large class of applications. Our research also
emphasizes the effective management of machine resources on
large multiprocessors.
<p>
One example is the recently completed <!WA2><A HREF="http://www.csg.lcs.mit.edu:8001/monsoon">Monsoon</a> project,
conducted jointly with Motorola. Monsoon marries a dataflow
processor with <!WA3><A HREF="http://www.csg.lcs.mit.edu:8001/monsoon/monsoon-performance/monsoon-performance.html">Id</a>, a declarative programming language
designed and implemented at LCS. At Id's core is a
functional programming language with non-strict semantics,
higher-order functions, a polymorphic-type system, and
powerful constructors for building lists and arrays. Id
also provides a novel way of dealing with state in the form
of I-structures and M-structures.
<p>
<center>
<table border>
<tr>
	<td><!WA4><img src=http://www.lcs.mit.edu/web_project/Brochure/csg/greg.gif></td>
	<td width=100 rowspan=2></td>
	<td><!WA5><img src=http://www.lcs.mit.edu/web_project/Brochure/csg/csg.gif></td>
</tr>
<tr> <td><address><b>Greg Papadopoulos</b></a>,<br>Associate
Professor <br>of Electrical Engineering <br>and Computer Science</address></td> 
<td><address><b>Jack Dennis,<br> Andy
Boughton,</b> Research Associate,<br><b>Arvind,<br><!WA6><A
HREF="http://www.csg.lcs.mit.edu:8001/Users/zhou">Yuli
Zhou</b></a>, Research Associate</address> </td> 
</tr> 
</table>
</center>
<p>
The Monsoon processor architecture uses dataflow principles
to address the basic issues of memory access latency and
the synchronization of concurrent threads of control. This
is done efficiently using multithreading, split-phase
operations, and hardware support for synchronization.
Multithreading allows the processor to execute instructions
of different threads while one thread is suspended by a
remote memory access. Special memory operations are
implemented to support synchronization between producers
and consumers of data structures.
<p>
In contrast to Id's declarative programming style, most
parallel programming uses conventional imperative languages
extended with constructs for parallel execution, or by a
library of parallel programming operations. Since the
programmer must partition the program into parallel
segments, optimize the partition, and insert
synchronization for determinacy, parallel programming using
imperative languages is much more complex than that for a
single-processor computer. In a declarative language,
however, parallelism is specified implicitly. The
programmer is therefore freed from these concerns, even
when using existing algorithms.
<p>
An international group of computer scientists interested in
declarative programming have recently joined forces to
define a new common functional programming language, named
Haskell.  CSG is now melding Id's significant features into
an extended "parallel Haskell," known as pH, to more
effectively disseminate implicit parallel programming.
<p>
Much of our work is on developing compilation techniques
for implicitly parallel programs expressed in languages
such as pH.  The goal is to give the programmer freedom in
devising abstractions for structuring applications without
slowing their execution. Id's mathematically clean
semantics makes it possible to perform significant program
transformations over large sections of code.
<p>
We are collaborating with Motorola in the *T (Start)
project, which strives to match a program model similar to
that of the Monsoon multiprocessor to a parallel machine
built of processors having more in common with conventional
(RISC or superscalar) architectures. The project is
designed to exploit the best combination of von Neumann and
dataflow principles.

</BODY>
<p>
<!WA7><a href="http://www.lcs.mit.edu/web_project/Brochure/contents.html"><!WA8><img align=left src=http://www.lcs.mit.edu/web_project/Brochure/icons/contents_motif.gif></a>
<!WA9><a href="http://www.lcs.mit.edu/web_project/Brochure/cag/cag.html"><!WA10><img align=left src=http://www.lcs.mit.edu/web_project/Brochure/icons/previous_group_motif.gif></a>
<!WA11><a href="http://www.lcs.mit.edu/web_project/Brochure/lps/lps.html"><!WA12><img align=left src=http://www.lcs.mit.edu/web_project/Brochure/icons/next_group_motif.gif></a>
</HTML>
